gen-variants-chord seed number chd-trim-value symbol-pattern
Use this to generate a sequence of chords from a symbol-pattern. The number of chords generated is equal to the length of the symbol-pattern. The size of the chord itself defaults to a random control of its size between 2 and 4 on each chord generated.
(setq chrds (gen-variants-chord 0.34 nil nil '(a b c d)))
--> (cbd ca ab db)
The number lets you set the number of chord variants to be generated. The chord-trim-value sets the number of symbols in each chord at a random value between 1 and the &optional chord-trim-value.
(setq chrds1 (gen-variants-chord 0.34 nil 3 '(a b c d)))
--> (bd ca ab b)
The function can be used with quite extensive symbol-patterns, even those containing rest symbols.
(setq mel '(a b c = f c g h e e f))
(setq chrds2 (gen-variants-chord 0.34 4 nil mel))
--> (cgh ae fhg eac)
The repetition of symbols within chord atoms makes it possible to use the function symbol-melodize to create sympathetic melodies or bass lines.